Skip to content

Interactive sub-processors page for customers #527

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Aug 12, 2025

Conversation

alex72508
Copy link
Collaborator

@alex72508 alex72508 commented Aug 8, 2025

Description (required)

We often get questions about the sub-processors in use. We support multiple regions where customer data is stored, which means we need to list all the countries out. Our product stores and processes data in the selected region. This may be confusing when presented with all the possible options.

This change will create a new page that has an interactive form to help customers determine the appropriate list of sub-processors. The page also has a deep link in it so that it can be bookmarked for future reference. Hopefully this will reduce support queries related to sub-processors.

Summary by CodeRabbit

  • New Features

    • Interactive sub-processors lookup: filter by Services Used, Data Region, Email Provider, and SMS Provider; displays provider, entity type, link, and location; supports bookmarkable URLs and live results.
  • Documentation

    • New docs page for the interactive tool; main sub-processors doc updated to include SMS (including AWS), notes for custom SMTP/SMS, an aside linking to the tool, and updated related articles.
  • Chores

    • Content-Security-Policy headers reformatted for clarity without changing effective allowances.

@github-actions github-actions bot added the security and privacy Anything security and privacy related label Aug 8, 2025
Copy link
Contributor

coderabbitai bot commented Aug 8, 2025

Warning

Rate limit exceeded

@alex72508 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 13 minutes and 59 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between e8ff76f and 8dde81e.

📒 Files selected for processing (1)
  • customHttp.yml (4 hunks)

Walkthrough

Adds a client-side Astro component (SubProcessorsForm) for interactive sub-processor lookup, a docs page embedding it, updates the existing sub-processors doc (SMS entries, Aside, relatedArticles), and reformats Content-Security-Policy directives in customHttp.yml.

Changes

Cohort / File(s) Summary
Interactive component (client-side form)
src/components/SubProcessorsForm.astro
New Astro component implementing a client-side form and results table to filter Kinde sub-processors by Services Used, Data Region, Email Services, and SMS Services; includes a static in-file dataset, URL parameter sync (history.replaceState), conditional filtering, deduplication, and result rendering/scrolling.
New interactive docs page
src/content/docs/trust-center/privacy-and-compliance/sub-processors-interactive.mdx
Adds a documentation page with front matter that imports and renders SubProcessorsForm, documents filter behavior, and notes bookmarkable URLs.
Updates to existing sub-processors doc
src/content/docs/trust-center/privacy-and-compliance/sub-processors.mdx
Adds an Aside promoting the interactive tool, updates front matter relatedArticles, extends content to include SMS-related entries (AWS SMS) and provider notes/links for custom SMTP and custom SMS.
CSP / headers configuration
customHttp.yml
Reformats and reflows Content-Security-Policy directives across global and path-specific blocks: consolidates connect-src, adds base-uri 'none', reorders/clarifies allowed origins (e.g., app.kinde.com, kinde.com, https://kinde-api-docs-proxy.pages.dev, https://analytics.usehall.com), adjusts ws: forms, and restructures line breaks/token placement without changing effective allowances.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant Page as Docs Page
  participant Form as SubProcessorsForm
  participant Hist as Browser History

  User->>Page: Open interactive sub-processors doc
  Page->>Form: Mount component
  Form->>Form: Read URL params, populate inputs
  User->>Form: Change selections (services, region, email/sms)
  Form->>Hist: replaceState(updatedQuery)
  Form->>Form: Filter static dataset, apply conditional rules, dedupe results
  Form-->>User: Render results table or no-results message
  Form->>User: Scroll to results when complete
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • marcosmartini
  • clairekinde11

Poem

I twitch my ears at regions wide,
Tick boxes set, the choices guide.
SMTP, SMS — I hop and sort,
Links and locales in tidy report.
Bookmark the burrow; filters bloom with pride. 🐇✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/sub-processors-form

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@alex72508
Copy link
Collaborator Author

@alex72508 alex72508 requested a review from clairekinde11 August 8, 2025 06:09
Copy link

cloudflare-workers-and-pages bot commented Aug 8, 2025

Deploying kinde-docs-previews with  Cloudflare Pages  Cloudflare Pages

Latest commit: 8dde81e
Status: ✅  Deploy successful!
Preview URL: https://ef147e17.kinde-docs-previews.pages.dev
Branch Preview URL: https://docs-sub-processors-form.kinde-docs-previews.pages.dev

View logs

Copy link
Collaborator

@clairekinde11 clairekinde11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love it. Ship it.

@alex72508 alex72508 marked this pull request as ready for review August 11, 2025 11:26
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (8)
src/components/SubProcessorsForm.astro (4)

87-90: Improve accessibility: announce results updates to screen readers

Expose the results region as an ARIA live region and associate a label.

-  <div id="results" class="hidden">
-    <h3 class="text-lg font-semibold mb-4">Your Sub-processors</h3>
+  <div id="results" class="hidden" aria-live="polite" role="region" aria-labelledby="resultsTitle">
+    <h3 id="resultsTitle" class="text-lg font-semibold mb-4">Your Sub-processors</h3>
     <div id="subProcessorsTable"></div>
   </div>

27-85: Accessibility: group related controls with fieldset/legend (especially radios)

Use semantic grouping for each set of radios/checkboxes to improve navigation for assistive tech. Example for Data Region:

-        <td class="w-1/4 px-3">
-          <label class="block text-sm font-medium mb-2">
-            Data Region *
-          </label>
-          <div class="space-y-2">
+        <td class="w-1/4 px-3">
+          <fieldset>
+            <legend class="block text-sm font-medium mb-2">Data Region *</legend>
+            <div class="space-y-2">
               ...
-          </div>
+            </div>
+          </fieldset>
         </td>

Replicate for Email Services and SMS Services.


487-499: Reduce stringly-typed conditions in data entries

Instead of string conditions like "emailServices === 'Kinde default'", consider boolean flags in data (e.g., requiresKindeEmail: true, requiresKindeSms: true). This avoids brittle string matching and is easier to validate.

Happy to draft the data schema and refactor the filter.


589-591: Back/forward navigation: sync form on popstate

Currently, changing history works, but back/forward won’t rehydrate the form. Add a popstate listener:

     results.classList.remove('hidden');
     results.scrollIntoView({ behavior: 'smooth' });
   }
+
+  window.addEventListener('popstate', () => {
+    setFormFromUrl();
+    checkFormCompletion();
+  });
src/content/docs/trust-center/privacy-and-compliance/sub-processors-interactive.mdx (3)

4-4: Update description/summary to include SMS provider

The tool also filters by SMS provider. Reflect that in metadata for search and accuracy.

-description: "Interactive tool to view relevant sub-processors based on your Kinde configuration including data region, services used, and email provider."
+description: "Interactive tool to view relevant sub-processors based on your Kinde configuration including data region, services used, email provider, and SMS provider."
@@
-ai_summary: "Interactive tool to view relevant sub-processors based on your Kinde configuration including data region, services used, and email provider."
+ai_summary: "Interactive tool to view relevant sub-processors based on your Kinde configuration including data region, services used, email provider, and SMS provider."

Also applies to: 33-33


30-30: Set updated date to match this change

Reflect the current update date.

-updated: "2024-08-02"
+updated: "2025-08-11"

38-38: Fix double space in sentence

Small typo.

-Please refer to the [sub-processors](/trust-center/privacy-and-compliance/sub-processors/) page for a comprehensive list of sub-processors,  more information about how we use them, and how to request a Data Processing Agreement (DPA).
+Please refer to the [sub-processors](/trust-center/privacy-and-compliance/sub-processors/) page for a comprehensive list of sub-processors, more information about how we use them, and how to request a Data Processing Agreement (DPA).
src/content/docs/trust-center/privacy-and-compliance/sub-processors.mdx (1)

32-32: Align front matter updated date with the stated “Last update”

Front matter shows 2024-08-02 but the page states “Last update... August 11, 2025.” Align these.

-updated: "2024-08-02"
+updated: "2025-08-11"

Also, a small grammar tweak reads better:

-Last update to the sub-processors for the external users is August 11, 2025.
+Last update to the sub-processors for external users is August 11, 2025.

Also applies to: 42-42

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 554722b and ea2a8c9.

📒 Files selected for processing (3)
  • src/components/SubProcessorsForm.astro (1 hunks)
  • src/content/docs/trust-center/privacy-and-compliance/sub-processors-interactive.mdx (1 hunks)
  • src/content/docs/trust-center/privacy-and-compliance/sub-processors.mdx (3 hunks)
🔇 Additional comments (2)
src/components/SubProcessorsForm.astro (1)

120-134: Verify data correctness: AWS Email/SMS locations

Double-check that:

  • AWS Email services location is Australia-only for all regions (as modeled).
  • AWS SMS services locations mirror the selected region.

These match the docs, but worth confirming with infra teams to avoid compliance drift.

Also applies to: 244-258

src/content/docs/trust-center/privacy-and-compliance/sub-processors.mdx (1)

54-59: Confirm policy statements for Email/SMS opt-out cases

The notes about custom SMTP/SMS excluding AWS as a sub-processor look correct. Please verify with legal/compliance that this wording matches your DPA definitions and notify workflows.

Also applies to: 79-84

Comment on lines +95 to +356
condition: "smsServices === 'Kinde default'"
},
{
service: "Stripe",
entityType: "Billing and invoicing",
link: "https://stripe.com/",
locations: {
"Australia": "United States",
"Canada": "United States",
"Europe": "United States",
"United Kingdom": "United States",
"United States": "United States"
}
},
{
service: "Temporal",
entityType: "Webhooks",
link: "https://temporal.io/",
locations: {
"Australia": "Australia",
"Canada": "Canada",
"Europe": "Ireland",
"United Kingdom": "United Kingdom",
"United States": "United States"
}
},
{
service: "Discord",
entityType: "Customer support",
link: "https://discord.com/",
locations: {
"Australia": "United States",
"Canada": "United States",
"Europe": "United States",
"United Kingdom": "United States",
"United States": "United States"
}
},
{
service: "Google",
entityType: "Customer support",
link: "https://workspace.google.com/",
locations: {
"Australia": "United States",
"Canada": "United States",
"Europe": "United States",
"United Kingdom": "United States",
"United States": "United States"
}
},
{
service: "InKeep",
entityType: "Customer support",
link: "https://inkeep.com/",
locations: {
"Australia": "United States",
"Canada": "United States",
"Europe": "United States",
"United Kingdom": "United States",
"United States": "United States"
}
},
{
service: "Microsoft",
entityType: "Customer support",
link: "https://www.microsoft.com/",
locations: {
"Australia": "United States",
"Canada": "United States",
"Europe": "United States",
"United Kingdom": "United States",
"United States": "United States"
}
},
{
service: "Plain",
entityType: "Customer support",
link: "https://www.plain.com/",
locations: {
"Australia": "United Kingdom",
"Canada": "United Kingdom",
"Europe": "United Kingdom",
"United Kingdom": "United Kingdom",
"United States": "United Kingdom"
}
},
{
service: "Slack",
entityType: "Customer support",
link: "https://slack.com/",
locations: {
"Australia": "United States",
"Canada": "United States",
"Europe": "United States",
"United Kingdom": "United States",
"United States": "United States"
}
}
]
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Avoid data drift: extract sub-processors dataset to a single source of truth

The static data here duplicates information in the docs tables. To prevent inconsistencies, extract to a JSON/YAML file (e.g., src/data/sub_processors.json) and import it both in this component and to render the tables in MDX (or generate both from the same source).

I can provide the data file and refactor this component to import it.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (5)
customHttp.yml (5)

8-8: Trim trailing spaces to satisfy yamllint.

Line 8 has trailing spaces flagged by YAMLlint. Remove them.

-          https://www.youtube-nocookie.com; child-src 'self';          
+          https://www.youtube-nocookie.com; child-src 'self';

8-8: Prefer frame-src/worker-src over deprecated child-src.

child-src is deprecated in CSP3 in favor of frame-src (for iframes) and worker-src (for workers). You already use frame-src; consider replacing child-src with worker-src if needed.

-          https://www.youtube-nocookie.com; child-src 'self';
+          https://www.youtube-nocookie.com; worker-src 'self';

13-14: Consider adding form-action to scope form submissions.

Given this PR introduces an interactive form, explicitly constrain where forms can POST.

-          base-uri 'none'; font-src 'self' https://fonts.gstatic.com; img-src
+          base-uri 'none'; form-action 'self'; font-src 'self' https://fonts.gstatic.com; img-src

83-85: Management APIs CSP: additions look fine; mirror ws: fix here too.

The added hosts are OK. Also update any bare ws to ws: in this block to avoid CSP parse issues.


97-99: Frontend APIs CSP: additions look fine; mirror ws: fix here too.

Same note as above for WebSocket scheme tokens.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ea2a8c9 and 6cf565a.

📒 Files selected for processing (2)
  • customHttp.yml (4 hunks)
  • src/components/SubProcessorsForm.astro (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/components/SubProcessorsForm.astro
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2024-09-20T04:56:23.891Z
Learnt from: marcosmartini
PR: kinde-oss/documentation#190
File: customHttp.yml:39-40
Timestamp: 2024-09-20T04:56:23.891Z
Learning: The `Strict-Transport-Security` header remains present in `customHttp.yml`; verify carefully before flagging its removal.

Applied to files:

  • customHttp.yml
🪛 YAMLlint (1.37.1)
customHttp.yml

[error] 8-8: trailing spaces

(trailing-spaces)

🔇 Additional comments (3)
customHttp.yml (3)

13-13: Good hardening: base-uri 'none'.

Nice addition. This blocks attackers from setting a URL to rewrite relative links.


14-14: img-src changes look correct.

Allowing 'self', data:, GCS, and Cloudflare Images aligns with existing assets.


49-51: script-src reflow retains all hashes and 'self'.

No loss of coverage detected; the directive remains functionally equivalent.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (2)
src/components/SubProcessorsForm.astro (2)

381-399: Great: robust URL normalization for deep links

Lowercasing and kebab-casing URL params plus case-insensitive parsing are in place. This stabilizes deep links and makes manual edits resilient.

Also applies to: 420-429


95-356: Avoid data drift: move sub-processors dataset to a single source of truth

The static dataset duplicates the docs tables. Extract to a JSON/YAML (e.g., src/data/sub_processors.json) and import it here and in MDX rendering to prevent inconsistencies.

🧹 Nitpick comments (4)
src/components/SubProcessorsForm.astro (4)

87-90: A11y: announce dynamic results and tie heading to region

Make the results region accessible to screen readers by announcing updates and labelling the region.

-  <div id="results" class="hidden">
-    <h3 class="text-lg font-semibold mb-4">Your Sub-processors</h3>
+  <div id="results" class="hidden" role="region" aria-live="polite" aria-labelledby="results-title">
+    <h3 id="results-title" class="text-lg font-semibold mb-4">Your Sub-processors</h3>

541-552: A11y: add a table caption for context

Provide a caption for assistive tech users.

-            <table class="min-w-full border border-gray-300">
-              <thead>
+            <table class="min-w-full border border-gray-300">
+              <caption class="sr-only">Sub-processor providers for your selected configuration</caption>
+              <thead>

579-581: Respect prefers-reduced-motion when scrolling to results

Avoid forced smooth scroll for users who prefer reduced motion.

-      results.classList.remove('hidden');
-      results.scrollIntoView({ behavior: 'smooth' });
+      results.classList.remove('hidden');
+      const reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
+      if (!reduceMotion) {
+        results.scrollIntoView({ behavior: 'smooth' });
+      } else {
+        results.scrollIntoView();
+      }

495-501: Guard against missing region mappings in dataset

Future data edits might omit a region key; avoid rendering “undefined” locations.

-              relevantSubProcessors.push({
-                service: processor.service,
-                entityType: processor.entityType,
-                link: processor.link,
-                location: processor.locations[dataRegion]
-              });
+              const location = processor.locations ? processor.locations[dataRegion] : undefined;
+              if (!location) {
+                return; // Skip if there's no mapping for the selected region
+              }
+              relevantSubProcessors.push({
+                service: processor.service,
+                entityType: processor.entityType,
+                link: processor.link,
+                location
+              });
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6cf565a and c734b42.

📒 Files selected for processing (1)
  • src/components/SubProcessorsForm.astro (1 hunks)
🔇 Additional comments (1)
src/components/SubProcessorsForm.astro (1)

93-93: CSP inline scripts are already whitelisted via SHA-256 hashes

We don’t need to externalize this <script>—our customHttp.yml uses explicit script-src hashes and gets updated automatically by scripts/update-csp.js on every build. That post-build hook fingerprints any new inline script and injects its SHA-256 into the “**” CSP pattern, so the inline code will continue to run without 'unsafe-inline' or nonces.

Key locations to verify:
• customHttp.yml – look under the pattern: '**' entry’s script-src for the SHA-256 hashes
• scripts/update-csp.js – the postbuild script that scans for inline <script> blocks and appends their hashes to the CSP

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (5)
customHttp.yml (5)

8-8: Fix YAML lint error: trailing spaces.

Line 8 ends with trailing spaces, causing YAMLlint to fail. Remove them.

-          https://www.youtube-nocookie.com; child-src 'self';          
+          https://www.youtube-nocookie.com; child-src 'self';

8-8: Modernize CSP: prefer worker-src over child-src.

child-src is deprecated in CSP3 for controlling workers. If the intent is to scope workers, use worker-src. Keeping child-src for legacy is fine, but consider adding worker-src for clarity.

-          https://www.youtube-nocookie.com; child-src 'self';
+          https://www.youtube-nocookie.com; child-src 'self'; worker-src 'self';

49-51: script-src formatting is fine; confirm hashes cover all inline scripts.

The reflow keeps semantics intact. Ensure any new inline scripts added by the interactive page are included in this hash list, or consider nonces if they’re dynamic.


84-85: img-src may be too restrictive for /kinde-apis/management/

Only allowing https://storage.googleapis.com may block images or data URIs used by the API reference UI. Consider adding 'self' and data: unless intentionally locked down.

-          img-src https://storage.googleapis.com
+          img-src 'self' data: https://storage.googleapis.com

98-98: img-src may be too restrictive for /kinde-apis/frontend/

As above, consider allowing 'self' and data: if required by the UI.

-          img-src https://storage.googleapis.com
+          img-src 'self' data: https://storage.googleapis.com
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c734b42 and d244f99.

📒 Files selected for processing (1)
  • customHttp.yml (4 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2024-09-20T04:56:23.891Z
Learnt from: marcosmartini
PR: kinde-oss/documentation#190
File: customHttp.yml:39-40
Timestamp: 2024-09-20T04:56:23.891Z
Learning: The `Strict-Transport-Security` header remains present in `customHttp.yml`; verify carefully before flagging its removal.

Applied to files:

  • customHttp.yml
🪛 YAMLlint (1.37.1)
customHttp.yml

[error] 8-8: trailing spaces

(trailing-spaces)

🔇 Additional comments (1)
customHttp.yml (1)

13-14: Good hardening: base-uri 'none' and explicit img-src.

Adding base-uri 'none' and scoping img-src improves security. Looks good.

@clairekinde11 clairekinde11 merged commit d94f906 into main Aug 12, 2025
6 checks passed
@clairekinde11 clairekinde11 deleted the docs/sub-processors-form branch August 12, 2025 00:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
security and privacy Anything security and privacy related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants